package com.note.feng.leetcode.algorithms.easy.seven;

public class SevenHundredNinetySix {
    /**
     * 796 旋转字符串
     * 给定两个字符串, s 和 goal。如果在若干次旋转操作之后，s 能变成 goal ，那么返回 true 。
     *
     * s 的 旋转操作 就是将 s 最左边的字符移动到最右边。 
     *
     * 例如, 若 s = 'abcde'，在旋转一次之后结果就是'bcdea' 。
     *
     * 示例 1:
     *
     * 输入: s = "abcde", goal = "cdeab"
     * 输出: true
     * 示例 2:
     *
     * 输入: s = "abcde", goal = "abced"
     * 输出: false
     *
     * 提示:
     *
     * 1 <= s.length, goal.length <= 100
     * s 和 goal 由小写英文字母组成
     *
     * 来源：力扣（LeetCode）
     * 链接：https://leetcode.cn/problems/rotate-string
     */
    /**
     * 解法：遍历
     * 若两个字符串的长度不一致，则怎么旋转也不会一样，所有直接返回 false
     * 遍历字符串 s ,不断的追加到尾部，若 s 以 goal 结尾，直接返回 true
     * @param s
     * @param goal
     * @return
     */
    public boolean rotateString(String s, String goal) {
        int a = s.length();
        int b = goal.length();
        if(a != b){
            return false;
        }
        for (int i = 0; i < a; i++) {
            s += s.charAt(i);
            if(s.endsWith(goal)){
                return true;
            }
        }
        return false;
    }
}
